package cloud.maque.admin.aop;

import cloud.maque.admin.domain.consts.ConstVar;
import cloud.maque.framework.common.exception.BusinessException;
import cloud.maque.framework.security.ssoclient.utils.SsoUserInfoUtils;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
 * @author zhuyf
 * @date 2023/5/14 23:31
 */
@Aspect
@Component
@Slf4j
public class MaquerManagerAop {


    @Autowired
    SsoUserInfoUtils infoUtils;

    @Pointcut("@annotation(cloud.maque.admin.annotations.MaquerManager)")
    public void MaquerManagerPoint() {

    }

    /**
     * 只有管理员租户才可以操作这些接口
     *
     * @param point
     * @throws IllegalAccessException
     */
    @Before("MaquerManagerPoint()")
    public void Before(JoinPoint point) throws Throwable {

        //判断是否是管理员租户，还要判断是不是租户管理员（is_tenant_manager)
        String tenantId = infoUtils.getTenantId();
        if (!tenantId.equals(ConstVar.ManagerTenandId)) {
            throw new BusinessException("你无权限操作此接口");
        }

    }

}
